保姆级教程!CentOS 7 从零安装配置 MySQL 8.0(全程可复制)

8次阅读
没有评论

很多小伙伴在搭建 Linux 服务器环境时,都会卡在 MySQL 安装、密码初始化、远程连接报错、权限配置等问题上。MySQL 8.0 相比 5.7 有很大改动,密码策略、授权语法、加密规则完全不同,旧教程很容易踩坑。

今天给大家整理一套 CentOS 7 安装 MySQL 8.0 完整版实操教程,全程无冗余步骤,所有命令可直接复制执行,覆盖安装、初始化、改密码、开机自启、远程连接、防火墙配置,新手也能一次成功。

适用环境:CentOS 7.x 全系版本 | MySQL 8.0 最新稳定版

核心优势:官方 YUM 源安装、稳定无兼容问题、规避 8.0 专属坑点


一、安装前环境预处理(必做)

CentOS 7 默认自带 MariaDB,与 MySQL 冲突,安装前必须先卸载,否则会导致安装失败、服务启动异常。

1. 检查系统自带 MariaDB

rpm -qa | grep mariadb

2. 卸载所有 MariaDB 相关依赖

查询出结果后,执行批量卸载命令(替换查询出的版本名即可):

yum remove -y mariadb*

3. 清理残留旧 MySQL 配置(可选)

若服务器之前装过 MySQL,建议清理残留文件,避免冲突:

rm -rf /etc/my.cnf
rm -rf /var/lib/mysql

二、添加 MySQL 8.0 官方 YUM 源

采用官方源安装,能保证版本纯正、后续可直接 yum 更新,杜绝第三方源的版本残缺、依赖缺失问题。

1. 下载 MySQL8 源配置包

wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

若提示 wget: 未找到命令,先安装工具:yum install -y wget

2. 安装源文件

rpm -ivh mysql80-community-release-el7-3.noarch.rpm

3. 验证源是否生效

yum repolist enabled | grep mysql

看到 mysql80-community 即为配置成功。


三、安装 MySQL 8.0 服务端

直接执行 yum 安装,自动处理所有依赖,无需手动配置依赖包:

yum install -y mysql-community-server

安装过程约 1-3 分钟,等待自动完成即可,无需手动干预。


四、启动服务并配置开机自启

1. 启动 MySQL 服务

systemctl start mysqld

2. 设置开机自动启动

systemctl enable mysqld

3. 查看服务运行状态

systemctl status mysqld

显示 active (running) 代表服务正常运行。


五、获取临时密码并修改 Root 密码(核心步骤)

MySQL 8.0 首次启动会自动生成 随机临时 root 密码,存放在日志文件中,无法空密码登录,必须先查询再修改。

1. 查询临时登录密码

grep 'temporary password' /var/log/mysqld.log

输出示例:A temporary password is generated for root@localhost: xxxxx#xxx9,冒号后字符串即为临时密码。

2. 登录 MySQL

mysql -uroot -p

回车后粘贴刚才的临时密码(密码输入不显示,直接输完回车即可)。

3. 修改 Root 密码(两种方案可选)

MySQL8.0 默认密码策略严格,必须包含大小写字母、数字、特殊符号,长度至少8位。

方案一:符合默认策略(生产环境推荐)

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;

方案二:简化密码策略(测试/本地开发环境)

若本地测试想使用简单密码,先关闭严格策略:

# 关闭密码强度校验
set global validate_password.policy=0;
set global validate_password.length=4;
# 修改简单密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;

修改完成后,执行 exit 退出数据库,重新用新密码登录验证。


六、配置远程连接(解决本地Navicat连接失败)

默认 root 仅允许 localhost 本地登录,远程工具无法连接,需要授权外网访问。

1. 登录 MySQL,授权所有IP访问

# 创建远程登录用户并授权(MySQL8.0 新语法)
CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

重点避坑:MySQL8.0 不支持 5.7 的 grant ... identified by 合并语法,必须先创建用户再授权,否则直接报错!

2. 开放服务器防火墙 3306 端口

# 开放3306端口
firewall-cmd --permanent --add-port=3306/tcp
# 重启防火墙生效
firewall-cmd --reload

云服务器需额外在 服务商安全组 放行 3306 端口,否则依旧无法连接。


七、解决 MySQL8 远程连接加密报错

低版本 Navicat/DBeaver 连接 MySQL8 会报 caching_sha2_password 加密错误,原因是8.0默认加密规则与旧客户端不兼容。

执行命令修改加密规则,完美兼容所有客户端:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;

修改后,重启数据库连接即可正常使用。


八、常用运维命令(收藏备用)

# 启动服务
systemctl start mysqld
# 停止服务
systemctl stop mysqld
# 重启服务
systemctl restart mysqld
# 查看运行状态
systemctl status mysqld
# 取消开机自启
systemctl disable mysqld

九、常见问题排查

1. 启动服务失败

大概率是残留配置冲突,执行 rm -rf /var/lib/mysql 清理数据目录,重新启动即可。

2. 密码修改报错

严格遵守8.0密码策略,生产环境不建议关闭校验,测试环境可按上文步骤简化策略。

3. 远程连接超时

优先检查防火墙端口、云服务器安全组规则,90%的连接失败都是端口未放行导致。


十、总结

MySQL 8.0 安装的核心难点不在于安装本身,而在于适配8.0的新特性:全新的密码策略、拆分式授权语法、新的加密规则。这套教程规避了所有版本坑点,全程基于官方源安装,稳定性拉满。

按照本文步骤操作,即可快速完成安装、初始化、远程配置,适配开发、测试、生产所有场景,新手直接复刻即可一次部署成功!

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 0
评论(没有评论)
验证码